package ModelLayer;
import java.util.ArrayList;

/**
 * Write a description of class MedarbejderContainer here.
 * 
 * @author (your name) 
 * @version (a version number or a date)
 */
public class MedarbejderContainer
{
    private ArrayList<Medarbejder> nyMedarbejder;
    private static MedarbejderContainer instance;

    /**
     * Constructor for objects of class MedarbejderContainer
     */
    private MedarbejderContainer()
    {
        nyMedarbejder = new ArrayList<Medarbejder>(); 
    }

    /**
     * Denne metode laver en singleton.
     * dette er med til at sikre at der kun bliver oprettet et enkelt objekt at klassen
     */
    public static MedarbejderContainer getInstance()
    {
        if(instance == null)
        {
            instance = new MedarbejderContainer();
        }
        return instance;
    }

    /**
     * Denne metode gør det muligt at tilføje objekter af Medarbejder til listen
     * 
     */
    public void tilfoejMedarbejder(Medarbejder medarbejder)
    {
        nyMedarbejder.add(medarbejder);
    }

    /**
     * denne metode gør det muligt at fjerne objekter af Medarbejder fra listen.
     * man indtaster medarbejderens  ID som søgeparameter, hvor søgemetoden bliver kaldet
     */
    public void fjernMedarbejder(int medarbejderId)
    {
        Medarbejder m = findMedarbejder(medarbejderId);
        nyMedarbejder.remove(m);
    }

    /**
     * denne metode er en søgemetode
     * søgeparameteren er medarbejderens ID
     * man før returnet et objekt af medarbejder 
     */

    public Medarbejder findMedarbejder(int medarbejderId)
    {
        for(Medarbejder medarbejder : nyMedarbejder)
            if(medarbejder.getMedarbejderId() == medarbejderId)
                return medarbejder;

        return null;
    }

     /**
     * Bruges til at liste alle medarbejderne i containeren.
     */
    public ArrayList<Medarbejder> listAlleMedarbejdere()
    {
        return nyMedarbejder;
    }
}
